iT邦幫忙

2022 iThome 鐵人賽

DAY 7
0
Software Development

C語言與C++語言系列 第 7

C語言與C++語言第七天

  • 分享至 

  • xImage
  •  

C語言的多選一的路口switch

我們先來討論switch述句,switch後面(整數值){case整數常數值:程式片段;break;default:程式片段;}
如果我要做整數的四則運算我們可以用if...else和switch來表達,上程式碼
if...else寫法

#include <stdio.h>
int main(){
    int num1, num2;
    char op;
    float answer;
    scanf("%d%c%d", &num1, &op, &num2);
    if(op=='+'){
        answer=num1+num2;
    }else if(op=='-'){
        answer=num1-num2;
    }else if(op=='*'){
        answer=num1*num2;
    }else {
        answer=(float)num1/num2;
    }
    printf("ANS: %f\n", answer);
    return 0;
}

上面的程式碼中,首先我們先宣告兩個要做四則運算的數字,接下來宣告op運算符號所以要用char字串宣告,由於答案可能有小數點所以也要用float,第一個if是+的時候兩個數字就做加法,第二個else if是-的時候做減法,第三個else if是*的時候做乘法,最後其實就是除法了所以else後面不用再加if和條件了,最後將answer印出來就好

switch寫法

#include <stdio.h>
int main(){
    int num1,num2;
    char op;
    float answer;
    scanf("%d%c%d", &num1, &op, &num2);
    switch(op){
        case '+':
            answer=num1+num2;
            break;
        case '-':
            answer=num1-num2;
            break;
        case '*':
            answer=num1*num2;
            break;
        case '/':
            answer=(float)num1/num2;
            break;
    }
    printf("ANS: %f\n", answer);
    return 0;
}

上面的程式碼中,宣告的方面是和if...else一樣的,然後開始套入switch裡面,case'+'就是兩數字做相加,case'-'就是兩數做相減,case'*'就是兩數做相乘,case'/'就是兩數做相除,最後再將結果印出來

C++語言的計算複利

#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
 int main(){
    double amount;
    double principal=1000.0;
    double rate=.05;

    cout<<"Year"<<setw(21)<<"Amount on desposit"<<endl;

    cout<<fixed<<setprecision(2);
    for(unsigned int year=1;year<=10;++year){
        amount=principal*pow(1.0+rate,year);

        cout<<setw(4)<<year<<setw(21)<<amount<<endl;
    }
 }

上面的程式碼中是計算複利,假設某人在帳戶存入1000元,年利率是百分之5,計算10內,每年年終帳戶的存額,我們會使用標準函式庫pow進行運算,函式pow(x,y)會計算x的y次方的數值


上一篇
C語言與C++語言第六天
下一篇
C語言與C++語言第八天
系列文
C語言與C++語言30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言